{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. What is Computer Science?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"The art and science of turning ideas into mechanized operations.\" -Douglas Blank, Apr 22, 2015, 2:45pm.\n", "\n", "Computer science is not programming. But we spent a lot of time programming. Yes, we did. But now that we know the basics, we can use that knowledge to build concrete ideas on a solid foundation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.1 What should I have gotten out of this course?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Understanding of some core ideas in computer science\n", " * hands-on exploration of the idea of an \"algorithm\"\n", " * hands-on exploration of the ideas in computing, including functions, variables, loops, types\n", " * hands-on exploration (and appreciation) of Object-Oriented Programming\n", "1. First-hand knowledge:\n", " * computing can take time\n", " * animations/simulations/games are just repeatedly drawing with slight changes\n", "1. Detailed exploration of:\n", " * image processing\n", " * visualizations\n", " * robot control\n", " * designing and using classes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.2 Little Ideas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Programs run from top to bottom\n", "1. An infinite loop is one that runs for ever (while (true) { ... })\n", "\n", "See Jeopardy review for more gathered from the in-class exercise. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.3 Big Ideas from CS110" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Control structure - if, loops\n", " 1. Loops (`for` and `while`)\n", " 1. if, else if, else\n", "1. Functions (defining and calling)\n", "1. Variables (global and local)\n", "1. Parameters\n", "1. Arguments\n", "1. Recursion - when a function is defined in terms of itself. See quicksort\n", "1. Types - int, float, boolean, void, int[], etc\n", "1. Classes - defining and instantiating\n", "1. Instance\n", "1. Sorting - different algorithms take time\n", "1. Finite State Machine (FSM) - robot control" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.4 Topics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Computer Science covers:\n", "\n", "* Data structures (things like arrays and lists, but more complicated things like trees, dictionaries, and graphs)\n", "* Cognitive Science\n", " * Artificial Intelligence\n", " * Logic\n", " * Machine Learning\n", " * Robotics\n", " * Vision/Image Processing\n", " * Developmental Robotics\n", " * Computational Linguistics\n", "* Operating Systems\n", "* Programming Languages\n", " * Compilers\n", "* Human-Computer Interaction\n", " * Interface Design\n", " * Web design\n", "* Theory of Computation\n", " * Analysis of Algorithms\n", "* Software Engineering\n", " * Security\n", " * Cryptography\n", " * Compression\n", " * Forensics\n", "* Genomics\n", "* Bioinformatics\n", "* Art\n", " * Graphics\n", " * Game design\n", "* Database Design and Theory\n", "* Mathematics\n", " * Discrete Math\n", " * Number Theory\n", " * Game Theory\n", " * Numerical Analysis\n", " * Computational Geometry\n", " * Networks (Graph Theory)\n", "* Programming\n", " * Object-Oriented Programming (OOP) (Java, C++, Python, etc.)\n", " * Functional Programming (Haskell, F#, Scheme, Lisp, Python, etc.)\n", " * Logic programming (Prolog, etc.)\n", " * Imperative Programming (C, Java, Python, etc.)\n", " * Declarative Programming (SQL, Prolog, etc.)\n", " * Parallel Computing\n", " * Quantum Computing\n", "* and many, many others... some just being created!\n", "\n", "Related areas:\n", "\n", "* Computer Engineering\n", "* Electrical Engineering\n", "* Informatics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.5 Courses at Bryn Mawr College" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "http://cs.brynmawr.edu/Courses/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.6 Assignment Ideas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Assignment #1 - Getting started with something relevant to you\n", "1. Assignment #2 - Design a drawable (parameterized) thing\n", "1. Assignment #3 - Abstract art; practice with functions\n", "1. Assignment #4 - Creating visualizations to help tell a story\n", "1. Assignment #5 - Introduction to OOP\n", "1. Assignment #6 - More experience with OOP\n", "1. Assignment #7 - Objects with internal state; experience with 3D perspective\n", "1. Assignment #8 - Robot control (internal state, Finite State Machine)\n", "1. Assignment #9 - Image Processing - manipulate pixels for different purposes\n", "1. Assignment #10 - Capstone, free choice; demonstrate what you know" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1.7 What do BMC CS students do after college?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* work for:\n", " * twitter\n", " * google\n", " * microsoft\n", " * banks\n", " * start-ups\n", "* go to grad school in CS:\n", " * princeton\n", " * upenn\n", " * university of ... you name it\n", "* other grad schools (law)\n", "* teach (middle school, high school)\n", "* other things!\n", " * become a comedian, no joking" ] } ], "metadata": { "kernelspec": { "display_name": "Calysto Processing", "language": "processing", "name": "calysto_processing" }, "language_info": { "codemirror_mode": { "name": "text/x-java", "version": 2 }, "file_extension": ".java", "mimetype": "text/x-java", "name": "java" } }, "nbformat": 4, "nbformat_minor": 0 }